package com.yaorange.medical.vo;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.yaorange.medical.domain.BsBreathReal;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;
import java.util.List;

/**
 * 解析过后的呼吸机实时数据
 *
 * @author coach tam
 * @email 327395128@qq.com
 * @values 坚持灵活 灵活坚持
 * @since 2024/6/7
 */
@EqualsAndHashCode(callSuper = true)
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class ParsedBreathRealVo extends BsBreathReal {
    /**
     * 实时数据又细分成三项（根据协议字典中的propertyType区分）
     * 1:实时数据
     * 2:设置状态
     * 3:报警状态
     */

    /**
     * 实时数据
     */
    private List<BreathRealDataItemVO> realDataList;

    /**
     * 设置状态
     */
    private List<BreathRealDataItemVO> settingStatusList;

    /**
     * 报警状态
     */
    private List<BreathRealDataItemVO> alarmStatusList;

    public ParsedBreathRealVo() {
    }

    @Builder
    public ParsedBreathRealVo(String id, Date requestTime, String historyId, String factoryId, String deviceId, String deviceName, Date deviceBuyTime, String deviceDeptId, String deviceDept, String deviceType, String areaId, String areaName, String departmentId, String departmentName, String mac, String inquireTime, String baudrate, String devTime, String ssid, String rssi, String ip, String tidalVolume, String modeSetting, String breathRate, String fio2, String ventilationType, String inspiratoryRate, String peakFlow, Integer alarmFlag, String breathData, String parsedBreathData, String createBy, Date createTime, String updateBy, Date updateTime, List<BreathRealDataItemVO> realDataList, List<BreathRealDataItemVO> settingStatusList, List<BreathRealDataItemVO> alarmStatusList) {
        super(id, requestTime, historyId, factoryId, deviceId, deviceName, deviceBuyTime, deviceDeptId, deviceDept, deviceType, areaId, areaName, departmentId, departmentName, mac, inquireTime, baudrate, devTime, ssid, rssi, ip, tidalVolume, modeSetting, breathRate, fio2, ventilationType, inspiratoryRate, peakFlow, alarmFlag, breathData, parsedBreathData,createBy, createTime, updateBy, updateTime);
        this.realDataList = realDataList;
        this.settingStatusList = settingStatusList;
        this.alarmStatusList = alarmStatusList;
    }
}
